/**
 * 封装 fetch 请求
 * @param url 请求地址
 * @param method 请求方法（默认为 'GET'）
 * @param data 请求数据（可选）
 * @returns 返回解析后的 JSON 数据
 */
export const fetchData = async (url: string, method: string = 'GET', data?: any):Promise<Res> => {
    try {
      const response = await fetch(url, {
        method,
        headers: {
          'Content-Type': 'application/json',
        },
        body: data ? JSON.stringify(data) : undefined,
      });
  
      if (!response.ok) {
        throw new Error(`请求失败，状态码：${response.status}`);
      }
  
      const result = await response.json();
      if(result.code !== 200) throw new Error(JSON.stringify(result));
      return Promise.resolve(result);
    } catch (error:any) {
      console.log(error.message);
      try{
        return Promise.reject(JSON.parse(error.message));
      } catch(_){
        console.log('error.message',error.message);
        return Promise.reject(error.message);
      }
    }
  };